/**
 *
 * @param date Date 日期格式
 * @param fmt  String 格式化
 * @returns
 */
const dateFormat = (date, fmt) => {
  if (null == date || undefined == date) return '';
  const o = {
    'M+': date.getMonth() + 1, // 月份
    'd+': date.getDate(), // 日
    'h+': date.getHours(), // 小时
    'm+': date.getMinutes(), // 分
    's+': date.getSeconds(), // 秒
    S: date.getMilliseconds(), // 毫秒
  };
  if (/(y+)/.test(fmt))
    fmt = fmt.replace(
      RegExp.$1,
      (date.getFullYear() + '').substr(4 - RegExp.$1.length),
    );
  for (const k in o)
    if (new RegExp('(' + k + ')').test(fmt))
      fmt = fmt.replace(
        RegExp.$1,
        RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length),
      );
  return fmt;
};

// 日期序列化 UTC 转标准时间
export const dateToJSON = () => {
  Date.prototype.toJSON = function () {
    return dateFormat(this, 'yyyy-MM-dd hh:mm:ss');
  };
};
